package com.yq.day20ye;

import com.sun.org.apache.regexp.internal.REUtil;

import java.util.zip.DeflaterOutputStream;

/**
 * @author 3307235355@qq.com
 * @since 2022/06/20 20:47
 * 上述功能，昨天已经实现了，今天考虑用lambda改进它，如下：
 * - 用以下功能接口，实现一个计算器的工具类
 * - 在工具类中，只需要一个工具方法，就能够实现所有的计算功能
 *
 *     @FunctionalInterface
 *     interface Compute {
 *         double compute(double a, double b);
 *     }
 *
 * 工具类和工具方法如下：
 *     //需要提供一个使用功能接口的方法完成需求
 *     class ComputeTool {
 *         private ComputeTool() {
 *         }
 *
 *         public static void calc(Compute com, double a, double b) {
 *             //...
 *         }
 *     }
 */
public class Demo01 {
    public static void main(String[] args) {
        System.out.println(ComputeTools.calc((a, b) -> a + b, 12, 12));
        System.out.println(ComputeTools.calc((a, b) -> a * b, 12, 12));
        System.out.println(ComputeTools.calc((a, b) -> a / b, 12, 12));
        System.out.println(ComputeTools.calc((a, b) -> a - b, 12, 12));

    }
}

@FunctionalInterface
interface Compute{
    double compute(double a,double b);
}

class ComputeTools{
    private ComputeTools(){}
    public static double calc(Compute com, double a, double b) {
        double result = com.compute(a, b);
        return result;
    }
}
